﻿#pragma warning(disable: 4996)
#pragma warning(disable: 6031)

/*
自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n，求该级数的前 n+1 项和。

输入格式:
输入第一行中给出非负整数 n（≤1000）。

输出格式:
在一行中输出部分和的值，保留小数点后八位。

输入样例:
10
输出样例:
2.71828180
*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int n;
double eps;

read_data()
{
	scanf("%d", &n);
}

double factorial(int n)
{
	static int n1 = 1;
	static double s = 1.0;
	for (int i = n1 + 1; i <= n; ++i)
		s *= i;
	n1 = n;
	return s;
}

double Sum(int n)
{
	double s = 1;
	double k = 0;
	for (int i = 1; i <= n; ++i) {
		k = 1 / factorial(i);
		s += k;
		if (k < 0.000000001)
			break;
	}
	return s;
}

void solve()
{
	read_data();
	printf("%.8f", Sum(n));
}

int main()
{
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-78.txt", "r", stdin);
	solve();
	return 0;
}
